package com.yunxi.dao.otd;

import com.yunxi.core.dao.BaseMapperPlus;
import com.yunxi.model.otd.OtdOrderCir;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.annotations.Param;

/**
 * <p>
 * CIR生产订单 Mapper 接口
 * </p>
 *
 * @author XUQI
 * @since 2019-07-15
 */
public interface OtdOrderCirMapper extends BaseMapperPlus<OtdOrderCir> {

    /**
     * CIR订单排程查询
     *
     * @param map 查询条件
     * @return List<Map < String, Object>>
     */
    List<Map<String, Object>> findCirOrderSchedule(Map<String, Object> map);

    int findCirOrderScheduleCount(Map<String, Object> map);

    /**
     * CIR计划分周查询
     *
     * @param map 查询条件
     * @return List<Map < String, Object>>
     */
    List<Map<String, Object>> findMonthCirWeekly(Map<String, Object> map);

    int findMonthCirWeeklyCount(Map<String, Object> map);


    /**
     * 根据年月查询待反馈CIR订单数量
     * @param yearMonths 年月
     */
    int selectWaitCirOrderCountByYearMonth(@Param("yearMonths") List<String> yearMonths);

    /**
     * 根据年月删除CIR订单
     * @param year 年
     * @param weeks 周
     */
    void deleteCirOrderByYearWeeks(@Param("year") String year,@Param("weeks") List<String> weeks);


    /**
     * SAP反馈，更新状态
     * @param planNo 生产计划号
     * @param sapNo SAP单号
     * @param sapState SAP状态
     * @param errorInfo 异常信息
     */
    void updateIfPlanBySapBack(@Param("planNo") String planNo, @Param("sapNo") String sapNo,
        @Param("sapState") String sapState,
        @Param("errorInfo") String errorInfo);

}
